<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of CursoMapper
 *
 * @author Home
 */
class CursoMapper {
    static public function map(Curso $curso, array $propriedades){
        if (array_key_exists('id_curso', $propriedades)){
            $curso->setIdCurso($propriedadess['id_curso']);
        }
        if (array_key_exists('nome_curso', $propriedades)){
            $curso->setNomeCurso($propriedades['nome_curso']);
        }
        
        if (array_key_exists('qtd_fase', $propriedades)){
            $curso->setQtdFase($propriedades['qtd_fase']);
        }
    }
    
    
    public static function insertCurso(Curso $curso){
        
        TTransaction::open('my_config');
            
         if ($conn = TTransaction::get()){
               $sql = "INSERT INTO cursos (nome_curso,
                                           qtd_fase)
                       VALUE (?,?)";
                                                
               
               $sth = $conn->prepare($sql);
               $sth->execute(array($curso->getNomeCurso(),
                                   $curso->getQtdFase()));
               
               $lastId = $conn->lastInsertId();
               
               foreach ($curso->getDis() as $dis){

                    $sql = "INSERT INTO disciplinas (nome_disciplina,
                                                     curso_id)
                            VALUES (?,?)";
                    $sth = $conn->prepare($sql);
                    $sth->execute(array($dis->getNomeDisciplina(),
                                        $lastId));

               }
               
               TTransaction::close();

            }else{
                echo 'Sem conexão com banco!';
        }
        
    }
    
    public static function getCursos(SearchCriteria $condicao = null){
        
        TTransaction::open('my_config');
            
         if ($conn = TTransaction::get()){
               
               $sql = "SELECT * FROM cursos ";
                     
               
               if ($condicao !== null){
                    if ($condicao->getValueCriteria() !== null) {
                        $sql .=" WHERE nome_curso like '{$condicao->getValueCriteria()}%'";
                    }
               }
               
               $sql .= "ORDER BY nome_curso DESC";
                       
               $sth = $conn->prepare($sql);
               $sth->execute();
            
               return $sth->fetchALL(PDO::FETCH_OBJ);

               TTransaction::close();

         }else{
                echo 'Sem conexão com banco!';
         }
    }
    
    public static function getItens($id){
        
        TTransaction::open('my_config');
        
        if ($conn = TTransaction::get()){
               $sql = "SELECT * FROM disciplinas
                       WHERE curso_id = ?";

               $sth = $conn->prepare($sql);
               $sth->execute(array($id));
               return $sth->fetchALL();

               TTransaction::close();

            }else{
                echo 'Sem conexão com banco!';
        }
 
    }
    
    public static function delete($id){
        
        TTransaction::open('my_config');
        
        if ($conn = TTransaction::get()){
               $sql = "DELETE FROM disciplinas
                       WHERE curso_id = ?";
               $sth = $conn->prepare($sql);
               $sth->execute(array($id));
                
               $sql = "DELETE FROM cursos
                       WHERE id_curso = ?";
               $sth = $conn->prepare($sql);
               $sth->execute(array($id));

               TTransaction::close();

            }else{
                echo 'Sem conexão com banco!';
        }
        
        
    }
}

?>
